home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 5 / Apprentice-Release5.iso / Source Code / C / Games / SpriteFight 2002 v2.0a1 / DialogUtils.c < prev    next >
Text File  |  1994-02-21  |  7KB  |  272 lines

  1. ///--------------------------------------------------------------------------------------
  2. //    DialogUtils.c
  3. //
  4. //    Created:    12/16/91 @ 11:37:55 PM
  5. //    By:        Tony Myles
  6. //
  7. //    Copyright © 1991-94, Tony Myles    All rights reserved worldwide.
  8. //
  9. //    Description: multitudinous dialog utility routines
  10. ///--------------------------------------------------------------------------------------
  11.  
  12.  
  13. #ifndef __DIALOGS__
  14. #include <Dialogs.h>
  15. #endif
  16.  
  17. #ifndef __OSUTILS__
  18. #include <OSUtils.h>
  19. #endif
  20.  
  21. #ifndef __DIALOGUTILS__
  22. #include "DialogUtils.h"
  23. #endif
  24.  
  25. #if MPW
  26. #pragma segment Utils
  27. #endif
  28.  
  29.  
  30. ///--------------------------------------------------------------------------------------
  31. // GetDItemHilite
  32. //
  33. //    get the hilite of a dialog item
  34. ///--------------------------------------------------------------------------------------
  35.  
  36. Boolean GetDItemHilite(DialogPtr dlgP, short itemNum)
  37. {
  38.     short itemType;
  39.     Rect itemRect;
  40.     Handle itemH;
  41.  
  42.     GetDItem(dlgP, itemNum, &itemType, &itemH, &itemRect);
  43.     return (**(ControlHandle)itemH).contrlHilite == 0;
  44. }
  45.  
  46.  
  47. ///--------------------------------------------------------------------------------------
  48. // SetDItemHilite
  49. //
  50. //    set the hilite of a dialog item
  51. ///--------------------------------------------------------------------------------------
  52.  
  53. void SetDItemHilite(DialogPtr dlgP, short itemNum, Boolean hilite)
  54. {
  55.     short itemType;
  56.     Rect itemRect;
  57.     Handle itemH;
  58.  
  59.     GetDItem(dlgP, itemNum, &itemType, &itemH, &itemRect);
  60.     HiliteControl((ControlHandle)itemH, (hilite) ? 0 : 255);
  61. }
  62.  
  63.  
  64. ///--------------------------------------------------------------------------------------
  65. // GetDItemText
  66. //
  67. //    get the text of a dialog item
  68. ///--------------------------------------------------------------------------------------
  69.  
  70. void GetDItemText(DialogPtr dlgP, short itemNum, Str255 iStr)
  71. {
  72.     short itemType;
  73.     Rect itemRect;
  74.     Handle itemH;
  75.  
  76.     GetDItem(dlgP, itemNum, &itemType, &itemH, &itemRect);
  77.     GetIText(itemH, iStr);                
  78. }
  79.  
  80.  
  81. ///--------------------------------------------------------------------------------------
  82. // SetDItemText
  83. //
  84. //    set the text of a dialog item
  85. ///--------------------------------------------------------------------------------------
  86.  
  87. void SetDItemText(DialogPtr dlgP, short itemNum, Str255 iStr)
  88. {
  89.     short itemType;
  90.     Rect itemRect;
  91.     Handle itemH;
  92.  
  93.     GetDItem(dlgP, itemNum, &itemType, &itemH, &itemRect);
  94.     SetIText(itemH, iStr);                
  95. }
  96.  
  97.  
  98. ///--------------------------------------------------------------------------------------
  99. // GetDItemCtlTitle
  100. //
  101. //    get the title of a control dialog item
  102. ///--------------------------------------------------------------------------------------
  103.  
  104. void GetDItemCtlTitle(DialogPtr dlgP, short itemNum, Str255 iStr)
  105. {
  106.     short itemType;
  107.     Rect itemRect;
  108.     Handle itemH;
  109.  
  110.     GetDItem(dlgP, itemNum, &itemType, &itemH, &itemRect);
  111.     GetCTitle((ControlHandle)itemH, iStr);                
  112. }
  113.  
  114.  
  115. ///--------------------------------------------------------------------------------------
  116. // SetDItemCtlTitle
  117. //
  118. //    set the title of a control dialog item
  119. ///--------------------------------------------------------------------------------------
  120.  
  121. void SetDItemCtlTitle(DialogPtr dlgP, short itemNum, Str255 iStr)
  122. {
  123.     short itemType;
  124.     Rect itemRect;
  125.     Handle itemH;
  126.  
  127.     GetDItem(dlgP, itemNum, &itemType, &itemH, &itemRect);
  128.     SetCTitle((ControlHandle)itemH, iStr);
  129.  
  130.         // validate the control’s rectangle since the
  131.         // Control Manager needlessly invalidates it
  132.     itemRect = (**(ControlHandle)itemH).contrlRect;
  133.     ValidRect(&itemRect);
  134. }
  135.  
  136.  
  137. ///--------------------------------------------------------------------------------------
  138. // GetDItemHdl
  139. //
  140. //    return the handle of a dialog item
  141. ///--------------------------------------------------------------------------------------
  142.  
  143. Handle GetDItemHdl(DialogPtr dlgP, short itemNum)
  144. {
  145.     short itemType;
  146.     Rect itemRect;
  147.     Handle itemH;
  148.  
  149.     GetDItem(dlgP, itemNum, &itemType, &itemH, &itemRect);
  150.  
  151.     return itemH;
  152. }
  153.  
  154.  
  155. ///--------------------------------------------------------------------------------------
  156. // SetDItemHdl
  157. //
  158. //    set the handle of a dialog item
  159. ///--------------------------------------------------------------------------------------
  160.  
  161. void SetDItemHdl(DialogPtr dlgP, short itemNum, Handle newItemH)
  162. {
  163.     short itemType;
  164.     Rect itemRect;
  165.     Handle itemH;
  166.  
  167.     GetDItem(dlgP, itemNum, &itemType, &itemH, &itemRect);
  168.     SetDItem(dlgP, itemNum, itemType, newItemH, &itemRect);
  169. }
  170.  
  171.  
  172. ///--------------------------------------------------------------------------------------
  173. // GetDItemRect
  174. //
  175. //    return the rect of a dialog item
  176. ///--------------------------------------------------------------------------------------
  177.  
  178. void GetDItemRect(DialogPtr dlgP, short itemNum, Rect *itemRect)
  179. {
  180.     short itemType;
  181.     Handle itemH;
  182.  
  183.     GetDItem(dlgP, itemNum, &itemType, &itemH, itemRect);
  184. }
  185.  
  186.  
  187. ///--------------------------------------------------------------------------------------
  188. // SetDItemRect
  189. //
  190. //    set the rect of a dialog item
  191. ///--------------------------------------------------------------------------------------
  192.  
  193. void SetDItemRect(DialogPtr dlgP, short itemNum, Rect *newItemRect)
  194. {
  195.     short itemType;
  196.     Handle itemH;
  197.     Rect itemRect;
  198.  
  199.     GetDItem(dlgP, itemNum, &itemType, &itemH, &itemRect);
  200.     SetDItem(dlgP, itemNum, itemType, itemH, newItemRect);
  201. }
  202.  
  203.  
  204. ///--------------------------------------------------------------------------------------
  205. // GetDItemType
  206. //
  207. //    return the type of a dialog item
  208. ///--------------------------------------------------------------------------------------
  209.  
  210. void GetDItemType(DialogPtr dlgP, short itemNum, short *itemType)
  211. {
  212.     Handle itemH;
  213.     Rect itemRect;
  214.  
  215.     GetDItem(dlgP, itemNum, itemType, &itemH, &itemRect);
  216. }
  217.  
  218.  
  219. ///--------------------------------------------------------------------------------------
  220. // SetDItemType
  221. //
  222. //    set the type of a dialog item
  223. ///--------------------------------------------------------------------------------------
  224.  
  225. void SetDItemType(DialogPtr dlgP, short itemNum, short newItemType)
  226. {
  227.     short itemType;
  228.     Handle itemH;
  229.     Rect itemRect;
  230.  
  231.     GetDItem(dlgP, itemNum, &itemType, &itemH, &itemRect);
  232.     SetDItem(dlgP, itemNum, newItemType, itemH, &itemRect);
  233. }
  234.  
  235.  
  236. ///--------------------------------------------------------------------------------------
  237. // OutlineDefaultButton
  238. ///--------------------------------------------------------------------------------------
  239.  
  240. void OutlineDefaultButton(DialogPtr dlgP, short itemNum)
  241. {
  242.     Rect buttonRect;
  243.     
  244.     GetDItemRect(dlgP, itemNum, &buttonRect);
  245.  
  246.     InsetRect(&buttonRect, -4, -4);
  247.     PenSize(3, 3);
  248.     FrameRoundRect(&buttonRect, 16, 16);
  249.     PenNormal();
  250. }
  251.  
  252.  
  253. ///--------------------------------------------------------------------------------------
  254. // ClickDialogButton
  255. ///--------------------------------------------------------------------------------------
  256.  
  257. void ClickDialogButton(DialogPtr dlgP, short itemNum)
  258. {
  259.     ControlHandle dialogButtonH;
  260.     long finalTicks;
  261.  
  262.     dialogButtonH = (ControlHandle)GetDItemHdl(dlgP, itemNum);
  263.  
  264.     if (dialogButtonH != NULL)
  265.     {
  266.         HiliteControl(dialogButtonH, 1);
  267.         Delay(10, &finalTicks);
  268.         HiliteControl(dialogButtonH, 0);
  269.     }
  270. }
  271.  
  272.